Traditional mainframe computer configurations provided for user interface to the computer through computer terminals which were directly connected by wires to ports of the mainframe computer. An example of such a terminal is an IBM 3270 or IBM 5250 terminal which communicates with a mainframe (or host) using a Telnet protocol. A Telnet protocol typically provides for structured grouping of data stream transmissions with a series of control characters followed by a block of displayable characters, a typical data stream comprising a plurality of sequentially transmitted control character blocks followed by displayable character blocks.
As computing technology has evolved, processing power has typically moved from a more central computer model to a distributed environment with local area networks connecting individual work stations to networks linking a number of different local networks through devices such as, for example, routers. Furthermore, due to infrastructure limitations and cost, components of the "network" linking two devices wishing to communicate may include a low through-put component such as a wireless network link. Central mainframe computers continue to play a role in the networked environment. Accordingly, structured protocols such as the Telnet protocol are still in use. These applications may communicate with users over the network to terminals such as an IBM 3270 or, alternatively, to microprocessor based work stations executing software applications which allow the computers to act as a terminal.
Although host applications can be adapted to use a more state-of-the art communications infrastructure, the performance of a host application may be hampered by using lower bandwidth channels such as wireless or internet channels. For this reason, among others, conventional procedures for communicating between terminals and hosts may be disadvantageous in such environments. However, because of the large installed base of conventional host applications and terminals designed for using these applications, it may be cost ineffective or infeasible to extensively modify these existing applications to incorporate more efficient communications techniques suited to these environments.
For example, a Telnet logon protocol for connecting a 3270 or 3250 terminal (or terminal emulator) to a host application includes several information transfers between the terminal and the host in order to establish a session. As illustrated in FIG. 1, a socket is opened by a Telnet terminal 10 for TCP connection to a Telnet host 20. The host 20 sends a "DO TT" Terminal Type option message to the terminal 10 which indicates that the host 20 is ready to perform Terminal Type negotiation. In response, the terminal 10 sends a "WILL TT" Terminal Type option message to the host 20 which indicates that the terminal 10 supports Terminal Type negotiation. The host 20 responds by sending a "SEND TT" message which requests that the terminal 10 send its terminal type, e.g., a value indicating whether the terminal 10 is a 3270 or 5250 type terminal. In response, the terminal 10 sends a message including the appropriate terminal type. The host 20 responds with a transfer including "DO EOR WILL EOR DO BIN WILL BIN" option messages which requests the terminal 10 to communicate using the Telnet end of record and binary transmission options. The terminal 10 responds by sending a transfer including "WILL EOR DO EOR WILL BIN DO BIN" option messages indicating support for these options. The host 20 then repeats the "DO BIN WILL BIN" option messages, and data may then flow between the terminal 10 and the host 20.
The Telnet logon procedure illustrated in FIG. 1 involves eight individual transfers over the communications channel which connects the terminal and the host before data begins to flow. In a lower bandwidth environment, this number of transfers can represent a significant amount of overhead which can impact the performance of a Telnet application, especially applications involving frequent connection and disconnection of the terminal and host.
To address communications performance problems in low-bandwidth environments such as wireless environments, conventional techniques have focused on accelerating communications at the application level. For example, a disconnect function has been used in VM which allows a user to disconnect from a Systems Network Architecture (SNA) application for a period of time and reconnect at the same point in the application at which the user disconnected, thus potentially reducing the overhead associated with reconnecting to the application. Similarly, a short hold mode has been implemented in SNA applications which allows a physical link, such as an X.25 modem, to be shut down during periods of no traffic in an SNA session without taking down the overlying SNA session. Unfortunately, however, these approaches typically involve modification of the SNA application and/or communications protocol to incorporate these new functions, which may be cost-ineffective for existing SNA applications.